package com.bit;

/**
 * Created by xiebang
 * Description
 * User:小谢
 * Date:2021-09-14
 * Time:10:32
 */
//接口：有interface来修饰的
    //接口里面的方法只能是抽象方法，且接口当中方法为抽象方法。
    //jdk1.8开始接口当中的方法可以是普通方法，但是前提是这个方法被default修饰
    /*
    接口当中的变量都是默认为 public static final修饰的
    不能被实例化
    类和接口的关系是implements，同样该类需要实现我们接口当中的抽象方法
    一个类可以使用implements实现多个接口，每个接口用逗号分开就行，为什么可以实现多个接口，多继承
    接口和接口之间的关系，使用extends关键字来维护。意为获得了接口的关系

    接口也是可以发生向上转型和多态的，不关注该类型，只要具有该功能就行
     */
interface IShape{
    int c = 20;
    public abstract void darw();
    default public void func(){
        System.out.println("默认方法");
    }
}

class Cycle implements IShape{

    @Override
    public void darw() {
        System.out.println("画个圆○");
    }
}
class Rect implements IShape{

    @Override
    public void darw() {
        System.out.println("画个方块□！");
    }
}

interface A{
    void funcA();
}
interface B{
    void funcB();
}
interface D extends A,B{
    void fund();
}

class E implements D{

    @Override
    public void funcB() {

    }

    @Override
    public void funcA() {

    }

    @Override
    public void fund() {

    }
}
class C implements A,B{

    @Override
    public void funcA() {

    }

    @Override
    public void funcB() {

    }
}
public class Test2 {
    public static void main(String[] args) {
        IShape shape = new Cycle();
        shape.darw();
    }


}
